package com.example.bank.dao;

import com.example.bank.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author ：Leeziqiang
 * @description：TODO
 * @date ：2021/12/3 21:06
 */
@Mapper
public interface UserDao {

    User findUserById(@Param("id") String id);

    List<User> findByUsername(@Param("name") String username);

    List<User> findByName(@Param("name") String username);

    String findNameById(String id);

    String findRoleById(Integer id);

    Integer findRoleByUserId(String userId);

    String findPermById(Integer id);

    Integer findPermByRoleId(Integer roleId);

    int saveUser(User user);

    int saveUserRole(@Param(value = "userId") String userId, @Param(value = "roleId") Integer roleId);

    int updateUserRole(@Param(value = "userId") String userId, @Param(value = "roleId") Integer roleId);

    int saveRole(String name);

    int savePerm(String name);

    List<User> findByAgentId(@Param("agentId") String agentId);

    List<String> findAdministrator();

    List<String> findAgents();

    List<String> findSalesmen();

    List<User> findUserByIds(@Param(value = "ids") List<String> ids);

    List<User> list();

    List<User> unBindUser();

    int bind(@Param("userId") String userId, @Param("agentId") String agentId);

    int updateBankArea(@Param("id") String id, @Param("bankArea") String bankArea);

    String findBankAreaById(@Param("id") String id);

    int deleteUser(@Param("id") String userId);

    int deleteUserRole(@Param("id") String userId);

    int updateUserByAgentId(@Param("agentId") String agentId);

    int updateArea(@Param("userId")String userId);

    int updateRealName(@Param("userId") String userId, @Param("realName") String realName);

}
